1. Field of the Invention
The present invention generally relates to data communications, and more particularly to a system and method for data communications across a high-speed data bus.
2. Discussion of the Related Art
Synchronous data systems have long been known. As is known, a synchronous data system is one in which data transfers occur coincident with a clock or some other strobe signal. In this regard, a driver places data on a bus in a known relation to, for example, a clock signal. In accordance with appropriate system design and defined setup and hold times, the driver places the data on the bus with sufficient time for the data to become valid, before the triggering edge of the clock signal. At the triggering edge (either rising edge or falling edge) of the next clock signal, data placed on the bus is clocked into a receiver.
Typically, the clock or other strobe signal is a global one, that extends throughout a system. In this regard, reference is made to FIG. 1, which shows a block diagram of a portion 10 of a synchronous data system as is known in the prior art. A clock generating component 12 (usually a crystal oscillator) provides a periodic alternating waveform 14, such as a square wave, that provide a synchronizing clock signal for all registered components in the system. The signal is carried on a conductor 16 to various components, and may be passed (through cabling, a motherboard backplane, or otherwise) to other circuit boards in the system.
For purposes of illustration, FIG. 1 shows only a few basic circuit components. These include a CPU 18, such as a microprocessor, and several registers 20, 22, 24. As illustrated, the clock signal 14 is routed to each of these components. When data is to be transferred from the CPU 18 to a register 20, or from a register 20 to the CPU 18, it is transferred in a synchronous manner. For simplicity, chip select circuitry and other control circuitry has been omitted from the drawing, but the existence and operation of such circuitry will be known and appreciated by those skilled in the art. For example, each of the registers 20, 22, and 24 will be uniquely address, as determine by the state of an address bus (not shown). Decoder circuitry, controlled by the address bus, then individually enables or selects the registers 20, 22, and 24, based upon the address specified by the address bus.
By way of example, consider a data transfer from the CPU 18 to the register 20. As illustrated by the small circle at the clock input to the register 20, the register 20 of the illustrated embodiment is active on the negative going edge of the clock signal 14. Thus, the CPU 18 must place the data on the data bus 26 at least some time before the negative going edge of the clock 14. As illustrated in FIG. 2, this is referred to as a setup time. In this regard, the data setup time recognizes that a finite period of time is required for data signals to propagate through components in the CPU before reaching their final state. Therefore, the CPU 18 must begin the output process before the negative going edge of the clock 14. Also, the CPU 18 is required to hold the data for a predetermined period of time after the negative going edge of the clock 14 (known as the hold time). The concepts of setup times and hold times in synchronous data systems are well known and need not be further explained herein.
While synchronous data systems of the type described above provide an effective way of communicating data between circuit components in a synchronized fashion, they suffer a number of shortcomings, as the system clock speeds increase. Specifically, in many data systems presently under design, data transfer rates are 250 mega transfers per second (MT/s), and are fast approaching 500 MT/s. In general, speed is extremely important and the faster the system the better. Conventional global clocked systems are incapable of meeting the requirements of transmitting data from chip to chip at these higher data rates, for a number of reasons. Limitations on clocked data I/O pads, clock skew between chips, and bus length are just a few factors that constrain the maximum speed achievable in a conventional global clocked synchronous data system. Indeed, in conventional systems, bus length was not a significant factor in design. However, in a system demanding a 500 MT/s data transfer rate, exchanges must occur in less than two nanoseconds (2.times.10.sup.-9). At these speeds, the delay that may occur along the data path, due in part to bus length, must be a factor for consideration. In fact, the entire manner in which data is communicated must be reconsidered in order to meet the extremely fast data transfer rates desired by present systems.
For example, while high-speed systems still utilize a global clock, there are restrictive limits on the frequency of the global clock. In this regard, the global clock often must drive a number of integrated circuits, which increases the drive load on the global clock. Also, due to the multiple destinations, the global clock signal is often carried on a lengthy bus. Both of these factors limit the frequency of the global clock signal.
It is therefore desirable, in high-speed systems, to effect multiple data transmissions between integrated circuits in a single period of the global clock. Accordingly, it is desired to provide a circuit for use in a high data transfer rate system, that effectively addresses and overcomes this and other shortcomings and concerns of prior art systems.